package com.rich.paas.util;

import org.apache.commons.lang3.StringUtils;

/**
 * file工具类
 *
 * @author chenhao
 */
public class FileUtils {

    /**
     * 默认的标准推荐使用的文件路径分隔符
     */
    public static final String DEFAULT_STANDARD_FILE_DELIMITER = "/";

    /**
     * 默认的不推荐使用的文件路径分隔符
     */
    public static final String DEFAULT_AGAINST_FILE_DELIMITER = "\\";

    /**
     * 默认的http协议地址头
     */
    public static final String DEFAULT_PREFIX_HTTP_PROTOCOL = "http://";


    /**
     * 纠正不标准的文件路径分隔符
     * 如：\,\\,\\\,//,/// -> /
     *
     * @param path
     * @return
     */
    public static String formatFilePath(String path) {
        if (!StringUtils.isEmpty(path)) {
            boolean startWithHttpProtocol = path.toLowerCase().startsWith(DEFAULT_PREFIX_HTTP_PROTOCOL);
            if (startWithHttpProtocol) {
                path = path.substring(DEFAULT_PREFIX_HTTP_PROTOCOL.length());
            }
            // 将一个或多个“\”转化成“/”
            path = path.replaceAll("\\\\{1,}", "/");
            // 将多个“/”转化成一个“/”
            path = path.replaceAll("\\/{2,}", "/");
            if (startWithHttpProtocol) {
                path = DEFAULT_PREFIX_HTTP_PROTOCOL + path;
            }
        }
        return path;
    }

    /**
     * 在path前面加上/
     *
     * @param path
     * @return
     */
    public static String formatFileDyncPath(String path) {
        path = formatFilePath(path);
        if (StringUtils.startsWith(path, FileUtils.DEFAULT_STANDARD_FILE_DELIMITER)) {
            return path;
        }
        return FileUtils.DEFAULT_STANDARD_FILE_DELIMITER + path;
    }

}
